//这里进行后端数据的模拟，逻辑是一样的
//首先获取导数据,这里模拟后端返回给前端的数据，但是有一个致命的点，就是数据量足够多的时候还是得需要用到查询

const userData = [
    {
        id: 1,
        name: 'xiaohua',
        avatar: "https://i.pravatar.cc/40?u=a",
        description: 'I can doing homework well'
    },
    {
        id: 2,
        name: 'xiaoming',
        avatar: "https://i.pravatar.cc/40?u=b",
        descirption: 'I think I doing'
    },
    {
        id: 3,
        name: 'xiaoxue',
        avatar: "https://i.pravatar.cc/40?u=me",
        descirption: 'None thing is impossible'
    }
]




const articleData = [
    {
        id: 1,
        title: '我的第一篇文章',
        content: '这是我的第一篇文章，主要讲解了如何应用工具进行开发的好处以及使用工具遇到的一些问题。比如说如何在最短的时间内产出好的质量的代码，还有就是如何总结开发的内容等等等。',
        time: '2025-06-11',
        userId: 1,
    },
    {
        id: 2,
        title: '我的第二篇文章',
        content: '这是我的第二篇文章，主要讲解了如何应对bug出现的各种问题以及如何在过程中吸取教训，下次如何更好的处理该类似的问题',
        time: '2025-06-3',
        userId: 2,
    }
]


//评论区1又分为： 
const commentData = [
    {
        id: 1,
        content: '我是主评论区一，感觉文章少了些什么',
        articleId: 1,
        userId: 1,
        replayId: 0, //表示该评论是一级评论。
        rootId: 0
    },
    {
        id: 2,
        content: '@用户1（由replayId内的userrId拼接），我是评论区一的二级评论，大家说一下看法呗',
        articleId: 1, //二级三级评论的话，主要评论区文章id不变
        userId: 1,
        replayId: 1, //表示该评论是一集评论。,
        rootId: 1
    },
    {
        id: 3,
        content: '@用户1（由replayId内的userrId拼接），我是评论区一的二级评论，太好的文章字数不多呢',
        articleId: 1, //二级三级评论的话，主要评论区文章id不变
        userId: 2,
        replayId: 1, //表示该评论是一集评论。
        rootId: 1
    },
    {
        id: 4,
        content: '@用户1（由replayId内的userrId拼接），我是评论区一的二级评论,看来作者的文笔还得加强!',
        articleId: 1, //二级三级评论的话，主要评论区文章id不变
        userId: 3,
        replayId: 1, //表示该评论是一集评论。
        rootId: 1
    },
    {
        id: 5,
        content: '@用户2（由replayId内的userrId拼接），我是评论区一的三级评论，但是回复的是评论2，其实我觉得嘛，还是少点内容比较好',
        articleId: 1, //二级三级评论的话，主要评论区文章id不变
        userId: 2,
        replayId: 2, //表示该评论是一集评论。
        rootId: 1
    },
    {
        id: 6,
        content: '@用户4（由replayId内的userrId拼接），我是评论区一的三级评论，确实Shiite这样，我会改下我的文笔呢',
        articleId: 1, //二级三级评论的话，主要评论区文章id不变
        userId: 1,
        replayId: 5, //表示该评论是一集评论
        rootId: 1,
    }
]


//首先，首页展示内容：

function homepate(articleData,commentData,userData ){
    articleData.forEach(item=>{
        userData.forEach(userItem=>{
            if(userItem.id === item.userId){
                item.user = userItem
            }
        })
        // console.log(item)
        //接下来进行commentlist的拼接
        item.commentList = commentListFn(item.id,commentData,userData);
    })
    return articleData;
}



function commentListFn(articleId,commentData,userData){
    //将评论的数据筛选为当前文章的评论
    commentData = commentData.filter((value)=> value.articleId === articleId)
    //接下来要满足的就是将用户信息拼接到对应的评论的用户中,直接修改评论的信息然后再进行生成树结点
    commentData.forEach(item=>{
        item.user = {}
        //查询数据，这里后期可以换成访问接口/user/id
        userData.forEach(userItem => {
            if(userItem.id === item.userId){
                item.user = userItem
            }
        })
    })


    //生成树结点
    const list = []
    commentData.forEach(item => {
        if(item.rootId === 0){
           list.push(item)
        }
    })
    list.forEach(listItem =>{
        listItem.children = []
        commentData.forEach(item =>{
            if(listItem.id === item.rootId){
                listItem.children.push(item)
            }
        })
    })
    return list;
}


